<?php
class User{

	private $idUser;
	private $username;
	private $name;
	private $password;
	private $email;
	private $avatar;
	private $admin;
	private $regDate;
	
	function getUser($id){
		$q 				= "SELECT * FROM user WHERE idUser='$id'";
		$query 			= mysql_query("$q") or die(mysql_error());
		$query 			= mysql_fetch_array($query, MYSQL_BOTH);
		$this->idUser	= $query['idUser'];
		$this->username	= $query['username'];
		$this->name		= $query['name'];
		$this->password	= $query['password'];
		$this->email	= $query['email'];
		$this->avatar	= $query['avatar'];
		$this->admin	= $query['admin'];
		$this->regDate	= $query['regDate'];
		return true;
	}
	
	/*
	 *  Funções GET
	 */

	function get_idUser(){		return $this->idUser;}	//Retorna o Id do Usuário
	function get_username(){	return $this->username;}//Retorna o Username do Usuário
	function get_name(){		return $this->name;}	//Retorna o Nome do Usuário
	function get_password(){	return $this->password;}//Retorna a Senha do Usuário
	function get_email(){		return $this->email;}	//Retorna o EMail do Usuário
	function get_avatar(){		return $this->avatar;}	//Retorna o Link do Avatar do Usuário
	function get_admin(){		return $this->admin;}	//Retorna se o Usuário é Admin ou não
	function get_regDate(){		return $this->regDate;}	//Retorna A Data de Registro do Usuário
	
	function set_idUser($id){
		$this->idUser = $id;
		return true;
	}//Insere o Id do Usuário
	function set_username($username){
		$this->username = $username;
		return true;
	}//Insere o Username do Usuário
	function set_name($name){
		$this->name = $name;
		return true;
	}//Insere o Nome do Usuário
	function set_password($password){
		$this->password = $password;
		return true;
	}//Insere a Senha do Usuário
	function set_email($email){
		$this->email = $email;
		return true;
	}//Insere o EMail do Usuário
	function set_avatar($avatar){
		$this->avatar = $avatar;
		return true;
	}//Insere o Link do Avatar do Usuário
	function set_admin($admin){
		$this->admin = $admin;
		return true;
	}//Insere se o Usuário é Admin ou não
	function set_regDate($regDate){
		$this->regDate = $regDate;
		return true;
	}//Insere A Data de Registro do Usuário
	
	function save_user(){
		$q = 	"UPDATE `rpgcom`.`user` 
				SET		`username` 	= '$this->username',
						`name` 		= '$this->name',
						`password` 	= '$this->password', 
						`email`	 	= '$this->email',
						`avatar` 	= '$this->avatar',
						`admin` 	= '$this->admin',
						`regDate`	= '$this->regDate'
				WHERE 	user.idUser = '$this->idUser'";
		$query = mysql_query("$q") or die(mysql_error());
		if($query)return true;else return false;
	}//Salva Alterações no Perfil
	
	function new_user(){
		$q = "INSERT INTO user(name,
		                       userName,
		                       password,
		                       email,
		                       avatar,
		                       regDate)
		                VALUES( '$this->name',
		                		'$this->username',
		                		'$this->password',
		                		'$this->email',
		                		'/img/ava.jpg',
		                		CURDATE());";
		$query = mysql_query("$q") or die(mysql_error());
		$q = "SELECT idUser FROM user WHERE username = '$this->username';";
		$query = mysql_query("$q") or die(mysql_error());
		$query = mysql_fetch_array($query, MYSQL_BOTH);
		if($query)return $query['idUser'];else return false;
	}//Registra novo usuario
	
	function isLogged($id){//Verifica se o usuário está logado.
		$q = "SELECT username FROM user WHERE idUser='$id'";
		$query = mysql_query("$q") or die(mysql_error());
		$query = mysql_fetch_array($query, MYSQL_BOTH);
		$q_user = strtolower($query['username']);
		$l_user = strtolower($this->username);
		if($l_user==$q_user){return TRUE;}else{return FALSE;}
	}
	
	function verificar_email(){
		$email = $this->email;
		$mail_correcto = 0;
		//verifico umas coisas
		if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) && (substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@")){
			if ((!strstr($email,"'")) && (!strstr($email,"\"")) && (!strstr($email,"\\")) && (!strstr($email,"\$")) && (!strstr($email," "))) {
				//vejo se tem caracter .
				if (substr_count($email,".")>= 1){
					//obtenho a terminação do dominio
					$term_dom = substr(strrchr ($email, '.'),1);
					//verifico que a terminação do dominio seja correcta
					if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!strstr($term_dom,"@")) ){
						//verifico que o de antes do dominio seja correcto
						$antes_dom = substr($email,0,strlen($email) - strlen($term_dom) - 1);
						$caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1);
						if ($caracter_ult != "@" && $caracter_ult != "."){
							$mail_correcto = 1;
						}
					}
				}
			}
		}
		if ($mail_correcto) return True; else return False;
	}

	function logar($username, $password){
		$q = "SELECT * FROM user WHERE username='$username';";
		$query = mysql_query("$q") or die(mysql_error());
		$query = mysql_fetch_array($query, MYSQL_BOTH);
		
		$id		= $query['idUser'];
		$q_user = strtolower($query['username']);
		$q_pass = $query['password'];
		$l_user = strtolower($username);
		
		if(($q_user == $l_user)&&($q_pass == $password)){
			$_SESSION['username'] = $q_user;
			$_SESSION['id'] = $id;
			return $id;
		}else{
			echo("<br />Login Nao Efetuado.<br /><br />");
		return FALSE;
		}
	}
	
	function logout(){
		if(isset($_SESSION['username'])){
			unset($_SESSION['username']);
			return true;
		}else{
			echo("Erro ao Deslogar");
			return false;
		}
	}
}
?>